Binary classification is the task of classifying the elements of a given set into two groups on the basis of a classification rule. There are several applications for binary classification, such as medical testing indicating whether or not a patient has a certain disease, quality control in factories where the product is tested to determine whether or not it meets a product specification, and a keyword spotting system where a system is designed to detect a voice command.
In many binary classification applications, the overall accuracy of the classification result may not be as important as the relative proportion of different error types. For example, in medical application a false positive (detecting a disease when it is not present) is considered differently from a false negative (not detecting a disease when it is present). There are several binary classification methods that may be used to solve this type of problem including decision trees, Bayesian networks, support vector machines, neural networks, prohibit regression, and logistic regression.
Among different methods, neural networks have been widely used because performance is sufficient to solve a wide variety of tasks that are hard to solve using the other methods. However, such approaches are often highly complex and may not be practical for use in many low power devices such as mobile phones. Efforts to reduce complexity often come at the cost of less flexibility, memory inefficiencies, and other undesirable performance measures. Thus, there is a need in the art for solutions to optimize binary classification systems that are both fast and resource efficient.